package com.meatball.iot.driver.doormagnet.enums

import com.fasterxml.jackson.annotation.JsonCreator
import com.fasterxml.jackson.annotation.JsonValue

/**
 * TODO 消息类型
 *
 * @author 张翔宇
 * @since 2024年6月18日
 */
enum class Cmd(val value: Int) {
    REGISTER_PACKAGE(1), // 注册包
    EVENT_PACKAGE(2),
    UNKNOWN_CMD(-1); // 事件包

    companion object {
        @JsonCreator
        @JvmStatic
        fun fromValue(value: Int): Cmd {
            return entries.firstOrNull { it.value == value }
                ?: throw IllegalArgumentException("错误的枚举值: $value")
        }
    }

    @JsonValue
    fun toValue(): Int {
        return value
    }
}